package one.stand.mapper;

import com.jmp.api.admin.dto.*;
import com.jmp.api.admin.entity.CompanyContentEntity;
import com.jmp.api.admin.entity.CompanyInfoEntity;
import one.stand.model.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

public interface CompanyApiAdminMapper {

    List<Company> selectList(@Param("name") String name);

    List<CompanyEqu> selectEqus(@Param("type") Integer type, @Param("nameLike") String nameLike);

    /**
     * 优选申请列表
     */
    List<CompanySelect> selectSelect(@Param("type") Integer type, @Param("companyName") String companyName, @Param("selectCompanyId") Integer selectCompanyId);

    List<CompanyCustomerLable> selectLabel(@Param("companyId") Integer companyId, @Param("searchNameLike") String searchNameLike);

    List<Integer> selectLabelByCompany(@Param("type") Integer type, @Param("companyId") Integer companyId);

    List<String> selectLabelName(@Param("type") Integer type, @Param("companyId") Integer companyId);

    List<Company> selectCompanyList(@Param("enterpriseType") Integer enterpriseType, @Param("searchNameLike") String searchNameLike, @Param("labelId") Integer labelId, @Param("platformId") Integer platformId, @Param("type") Integer type);

    List<CompanyContentEntity> selectCompanyContent(@Param("nameLike") String nameLike);

    Integer selectCompanyContentOne(@Param("companyId") Integer companyId);

    CompanyInfoEntity selectCompanyInfo(@Param("companyId") Integer companyId);

    List<CompanyModel> selectAgentCompanyList(CompanyModel model);

    IndexDataResponse selectIndexDataCompany(@Param("startTime") String startTime, @Param("endTime") String endTime);

    Integer selectIndexDataUser(@Param("startTime") String startTime, @Param("endTime") String endTime);

    List<Map<String, Object>> newCustomerList(FinanceModel model);

    List<Map<String, Object>> newCompanyList(FinanceModel model);

    Map<String, Object> dataCenter(FinanceModel model);

    List<Map<String, Object>> newUserCountList(FinanceModel model);

    List<Map<String, Object>> userUseCountList(FinanceModel model);

    List<Map<String, Object>> userSexCount(FinanceModel model);

    List<CompanyLicenseResponse.License> selectLicenses(@Param("nameLike") String nameLike, @Param("status") Integer status, @Param("type") Integer type);

    /**
     * 奖券列表
     */
    List<TicketListResponse.Ticket> selectTicketList(@Param("keyword") String keyword, @Param("status") Integer status);

    /**
     * 奖券订单列表
     */
    List<TicketOrderListResponse.Order> selectTicketOrderList(@Param("keyword") String keyword, @Param("status") Integer status, @Param("orderNo") String orderNo, @Param("orderNoEnd") String orderNoEnd, @Param("type") Integer type);

    /**
     * 订单统计
     */
    List<TicketOrderCompanyResponse.Company> selectTicketCompanyList(@Param("keyword") String keyword);

    TicketOrderCompanyResponse.Count selectTicketOrderCount(@Param("keyword") String keyword);

    /**
     * 审核拒绝奖券订单统计
     */
    IndexDataResponse selectTicketOrderSum();

    List<TicketOrderCompanyDetailResponse.Order> selectTicketCompanyDetailList(@Param("companyId") Integer companyId, @Param("status") Integer status);

    List<TicketOrderCompanyDetailResponse.Order> selectTicketOrderDetailList(@Param("userId") Integer userId, @Param("status") Integer status);

    Integer selectLicensesType(@Param("companyId") Integer companyId);

}
